package com.eascs.loan.service;

import java.util.List;

import com.eascs.admin.o2o.loan.entity.O2oLoanapplyEntity;
import com.eascs.app.dao.PageResult;
import com.eascs.loan.entity.O2oPaymentsPlan;
import com.eascs.loan.entity.O2oRepaymentEntity;
import com.eascs.loan.form.O2oPaymentsForm;
import com.eascs.workflow.common.vo.ModelResult;

/**
 * @ClassName: O2oPaymentsService
 * @Description: 还款计划service
 * @author 张庆奇
 * @date 2016年6月17日 上午9:13:05
 * @version V1.0
 */
public interface O2oPaymentsService {
	
	/**
	 * @Title: PaymentsList
	 * @Description: 分页查询还款列表
	 * @author 张庆奇
	 * @param o2oPaymentsForm
	 * @return
	 * @return PageResult<Object[]>
	 * @throws
	 * @date 2016年6月17日 上午9:13:20
	 */
	public PageResult<Object[]> paymentsList(O2oPaymentsForm o2oPaymentsForm);

	/**
	 * @Title: savePayments
	 * @Description: 添加还款信息
	 * @author 张庆奇
	 * @param o2oPayments
	 * @return
	 * @return String
	 * @throws
	 * @date 2016年6月17日 上午9:13:45
	 */
	public String savePayments(O2oPaymentsPlan o2oPayments);

	/**
	 * @Title: delPayments
	 * @Description: 逻辑删除还款计划信息
	 * @author 张庆奇
	 * @param payments_id
	 * @return
	 * @return boolean
	 * @throws
	 * @date 2016年6月21日 下午2:24:14
	 */
	public boolean delPayments(String payments_id);
	
	/**
	 * @Title: findO2oLoanapplyEntity
	 * @Description: 根据借款人id,查询借款状态为申报完成、,已放款/审批通过的借款信息
	 * @author 张庆奇
	 * @param loan_id 借款人id
	 * @return
	 * @return List<O2oLoanapplyEntity>
	 * @throws
	 * @date 2016年6月24日 上午11:20:35
	 */
	public List<O2oLoanapplyEntity> findO2oLoanapplyEntity(String loan_id);
	
	/**
	 * @Title: findO2oLoanapplyEntityByName
	 * @Description: 通过姓名查询借款信息
	 * @author 张庆奇
	 * @param name
	 * @return
	 * @return List<O2oLoanapplyEntity>
	 * @throws
	 * @date 2016年6月24日 下午2:58:15
	 */
	public List<O2oLoanapplyEntity> findO2oLoanapplyEntityByName(String name);
	
	public List<O2oPaymentsPlan> queryBillCode(String code);
	
	/**
	 * @Description: <p> </p>
	 * @author CXW
	 * @date 2016年8月29日 下午6:38:57
	 * @version V1.0
	 * @param 
	 * @return int
	 */
	public int insertO2oRepaymentEntity(O2oRepaymentEntity o2oRepaymentEntity);
	/**
	 * @Description: <p> </p>
	 * @author CXW
	 * @date 2016年8月29日 下午6:39:01
	 * @version V1.0
	 * @param 
	 * @return int
	 */
	public int updateO2oRepaymentEntity(O2oRepaymentEntity o2oRepaymentEntity, O2oPaymentsPlan o2oPaymentsPlan);
	/**
	 * @Description: <p>查询还款记录</p>
	 * @author CXW
	 * @date 2016年8月29日 下午6:40:02
	 * @version V1.0
	 * @param 
	 * @return PageResult<Object[]>
	 */
	public PageResult<Object[]> repaymentsList(O2oPaymentsForm o2oPaymentsForm);
	
	public ModelResult<Boolean> startPayBack(O2oRepaymentEntity o2oRepaymentEntity);
	
	public O2oPaymentsPlan findByIdEntity(String id);
	
	public O2oRepaymentEntity findByBillCodeAndStatus(String billCode,String status);
	/**
	 * 查询还款完成  几条
	 * @param billCode
	 * @param status
	 * @return
	 */
	public int findCount(String billCode,String status);
}
